package org.jeecg.modules.product.risk.vo;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.product.risk.entity.TbBaseDangerInvestigationReocrd;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @Description: 隐患排查(主表)
 * @Author: jeecg-boot
 * @Date:   2022-04-25
 * @Version: V1.0
 */
@Data
public class TbBaseCheckDangerDto {

	/**主键*/
	@Schema(description = "主键")
	private String id;
	/**创建人*/
	@Schema(description = "创建人")
	private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "创建日期")
	private Date createTime;
	/**更新人*/
	@Schema(description = "更新人")
	private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "更新日期")
	private Date updateTime;
	/**所属部门*/
	@Schema(description = "所属部门")
	private String sysOrgCode;
	/**隐患等级*/
	@Schema(description = "隐患等级")
	private String dangerLevel;
	/**隐患来源*/
	@Schema(description = "隐患来源")
	private String dangerSrc;
	/**隐患治理类型*/
	@Schema(description = "隐患治理类型")
	private String dangerManageType;
	/**所属装置*/
	@Schema(description = "所属装置")
	private String riskDeviceId;
	/**所属单元*/
	@Schema(description = "所属单元")
	private String riskUnitId;
	/**隐患名称*/
	@Excel(name = "隐患名称", width = 15)
	@Schema(description = "隐患名称")
	private String dangerName;
	/**隐患描述*/
	@Excel(name = "隐患描述", width = 15)
	@Schema(description = "隐患描述")
	private String dangerDesc;
	/**隐患产生原因*/
	@Excel(name = "隐患产生原因", width = 15)
	@Schema(description = "隐患产生原因")
	private String dangerReason;
	/**资金*/
	@Excel(name = "资金", width = 15)
	@Schema(description = "资金")
	private Double cost;
	/**隐患治理期限*/
	@Excel(name = "隐患治理期限", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "隐患治理期限")
	private Date dangerManageDeadline;
	/**隐患状态*/
	@Dict(dicCode = "dangerState")
	@Schema(description = "隐患状态")
	private String dangerState;
	/**隐患类型*/
	@Schema(description = "隐患类型")
	private String hazardDangerType;
	/**登记人姓名*/
	@Schema(description = "登记人姓名")
	private String registrant;
	/**控制措施*/
	@Excel(name = "控制措施", width = 15)
	@Schema(description = "控制措施")
	private String controlMeasures;
	/**管控措施*/
	@Schema(description = "管控措施")
	private String riskMeasureId;
	/** 隐患排查记录*/
	@Excel(name = " 隐患排查记录", width = 15)
	@Schema(description = " 隐患排查记录")
	private String checkRecordId;
	/**登记时间*/
	@Schema(description = "登记时间")
	private Date registTime;
	/**整改责任人姓名*/
	@Schema(description = "整改责任人姓名")
	private String liablePerson;
	/**验收人*/
	@Schema(description = "验收人")
	private String checkAcceptPerson;
	/**验收情况*/
	@Excel(name = "验收情况", width = 15)
	@Schema(description = "验收情况")
	private String checkAcceptComment;
	/**验收时间*/
	@Schema(description = "验收时间")
	private Date checkAcceptTime;
	/**图片*/
	@Excel(name = "图片", width = 15)
	@Schema(description = "图片")
	private String img;
	/**删除状态*/
	@Excel(name = "删除状态", width = 15, dicCode = "yn")
	@Dict(dicCode = "yn")
	@Schema(description = "删除状态")
	private String deleted;
	/**隐患类别*/
	@Excel(name = "隐患类别", width = 15, dicCode = "yn")
	@Dict(dicCode = "yn")
	@Schema(description = "隐患类别")
	private String hazardCategory;

	@ExcelCollection(name="隐患治理记录")
	@Schema(description = "隐患治理记录")
	private List<TbBaseDangerInvestigationReocrd> baseDangerInvestigationReocrdList;


	/*-------------------------------------专项检查隐患信息--------------------begin------------------------------------------------------------------*/

	/**所属隐患*/
	@Schema(description = "所属隐患")
	private String dangerId;
	/**所属任务*/
	@Schema(description = "所属任务")
	private String taskId;
	/**检查类型*/
	@Excel(name = "检查类型", width = 15, dicCode = "check_danger_type")
	@Dict(dicCode = "check_danger_type")
	@Schema(description = "检查类型")
	private String checkType;
	/**检查项*/
	@Schema(description = "检查项")
	private String checkItemId;
	/**检查项评分细则*/
	@Schema(description = "检查项评分细则")
	private String checkScoreId;
	/**检查时间*/
	@Schema(description = "检查时间")
	private Date checkDate;
	/**罚款金额*/
	@Excel(name = "罚款金额", width = 15)
	@Schema(description = "罚款金额")
	private Double checkPay;
	/**危害类型*/
	@Schema(description = "危害类型")
	private String harmType;
	/**专项检查隐患id*/
	@Schema(description = "专项检查隐患id")
	private String baseCheckDangerId;

}
